/**
 * 
 */

/**
@param <E> Parametro generico que estara recibiendo el stack, puede ser int, double, String, objeto, ect.
 *   @author SERGIO MOLINA
 *   Universidad del Valle de Guatemala
 *   Algoritmos y Estructura de Datos
 *   Sergio Molina
 *   10256
 *   23 de agosto de 2011
 *   Descripcion: Interfaz Stack, para el uso de vectores como pilas donde se 
 *   ponen las clases basicas para una pila
  */
public interface Stack <E>{

	  /**
     *  post: agrega un elemento a la pila
     */
    public void push (E elemento);

    /**
     *  pre: la pila no debe estar vacia
     *       post: remueve el ultimo elemento a la pila y lo devuelve
     */
    
    public E pop ();

    /**
     *  pre: la pila no debe estar vacia
     *       post: retorna el ultimo elemento de la pila
     *       @return retorna el ultimo elemento de la pila
     */
    public E peek ();

    /**
     *  post: regresa true si se encuentra vacio o true si no.
     *       @return  regresa true si se encuentra vacio o true si no.
     */
    public boolean empty ();

}
